package leetcode_100;

/**
 *@author 周杨
 *ContainerWithMostWater_11 给定一个数组 表示柱子的高度 选择任意两个柱子组成矩形 问矩形最大面积
 *describe:双指针遍历 AC 88%
 *2018年12月21日 上午10:56:53
 */
public class ContainerWithMostWater_11 {
	 public int maxArea(int[] height) {
		 int left=0,right=height.length-1;
		 int max=0;
		 while(left<right) {
			 boolean flag=height[left]<height[right];
			 max=Math.max(max, (flag?height[left]:height[right])*(right-left));
			 //为什么这种指针移动的方式是正确的 可以由数学方式证明这种贪心方法
			 //因为每次取最大的指针不移动 那么这个指针就能保证有一个最低的可接受值
			 //就算获取到更高的值 还会因为这个低指针 而取不到
			 if(flag) ++left;
			 else --right;
		 }
		 return max;
	 }
}
